package bonus;

import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.Stack;

import tablero.Ciudad;
import tablero.NombreRegion;
import tablero.Tablero;

import jugador.Jugador;

public class BonusBaden extends Bonus{
	private Stack <Integer> pilaBaden;
	public BonusBaden()
	{
		 pilaBaden = new Stack<Integer>();
		 pilaBaden.addElement(new Integer(1));
		 pilaBaden.addElement(new Integer(2));
		 pilaBaden.addElement(new Integer(3));
	}
	@Override
	boolean cumple(Jugador j) {
		//Obtiene los bonus posibles
		if (pilaBaden.isEmpty())
			return false;
		boolean enc = false;
		List<Ciudad> listaCiudadConOficinas = new LinkedList<Ciudad>();
		Set<Ciudad> s =	j.getOficinasColocadas().keySet();
		for (Ciudad c: s){
			listaCiudadConOficinas.add(c);
		}
		List<Ciudad> ciudadesBaden = Tablero.getInstance().getCiudadesRegion(NombreRegion.Baden);
		
		if (listaCiudadConOficinas.containsAll(ciudadesBaden)){
			enc = true;
		}
		return enc;
	}
	@Override
	Integer vaciarPila(Jugador j) {
		return pilaBaden.pop();
	}
}
